package com.ionehe.group.common.uaa.ex.application.model;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.ionehe.group.common.uaa.ex.utils.Date2LongSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * Copyright (c) 2020 ionehe.com
 * Date: 2020/11/24
 * Time: 下午05:25
 *
 * @author 2020年 <a href="mailto:a@ionehe.com">秀</a>
 */
@Data
@ApiModel("用户查询类")
public class UserInfoVO {
    /**
     * 主键
     */
    @ApiModelProperty(value = "id", example = "1", dataType = "Long", required = true)
    private Long id;

    /**
     * 公司id
     */
    @ApiModelProperty(value = "公司id", example = "1", dataType = "Long", required = true)
    private Long customerId;

    /**
     * 父公司id
     */
    @ApiModelProperty(value = "父公司id", example = "1", dataType = "Long", required = true)
    private Long parentCustomerId;

    /**
     * 姓名
     */
    @ApiModelProperty(value = "姓名", example = "1", dataType = "String", required = true)
    private String name;

    /**
     * 手机号
     */
    @ApiModelProperty(value = "手机号", example = "1", dataType = "String", required = true)
    private String phone;

    /**
     * 头像
     */
    @ApiModelProperty(value = "头像", example = "1", dataType = "String", required = true)
    private String avatar;

    /**
     * 状态（已禁用-1，已启用1）
     */
    @ApiModelProperty(value = "状态(已禁用-1，已启用1)", example = "1", dataType = "Integer", required = true)
    private Integer status;

    /**
     * 类型（管理员0，员工1）
     */
    @ApiModelProperty(value = "类型(管理员0，员工1)", example = "1", dataType = "Integer", required = true, notes = "管理员0，员工1")
    private Integer type;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注", example = "1", dataType = "String", required = true, notes = "备注")
    private String remark;

    /**
     * 角色列表
     */
    @ApiModelProperty(value = "角色列表", example = "1", dataType = "List", required = true)
    private List<RoleInfoVO> roleInfoVOList;

    /**
     * 功能id列表
     */
    @ApiModelProperty(value = "功能id列表", dataType = "List", required = true)
    private List<Long> functionIds;

    /**
     * 性别
     */
    @ApiModelProperty(value = "性别")
    private Integer gender;

    /**
     * 用户所属公司信息
     */
    private CustomerInfoVO customerInfo;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间", required = true)
    @JsonSerialize(using = Date2LongSerializer.class)
    private Date createTime;
}